🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / core / common / src / commonMain / kotlin / org / meshtastic / core / common / util / NumberFormatter.kt
Displaying Raw • Download
core/common/src/commonMain/kotlin/org/meshtastic/core/common/util/NumberFormatter.kt 2d20cd8a4708e2ef66e98d5259f3a97ec93f240a (2d20cd8a) Text, 2.03 KB
T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.core.common.util
Tff7b72import T7ee787kotlin.math.pow
Tff7b72import T7ee787kotlin.math.roundToLong
T8b949e/** Pure Kotlin number formatting utility — no expect/actual needed. */
Tff7b72object T56d364NumberFormatter Tb4b4b4{
T8b949e/** Formats a double value with the specified number of decimal places. */
Tff7b72fun Td2a8ffformatTb4b4b4(Te6edf3valueTb4b4b4: Tffa657DoubleTb4b4b4, Te6edf3decimalPlacesTb4b4b4: Tffa657IntTb4b4b4)Tb4b4b4: Tffa657String Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3valueTb4b4b4.Te6edf3isNaNTb4b4b4(Tb4b4b4) Tff7b72|Tff7b72| Te6edf3valueTb4b4b4.Te6edf3isInfiniteTb4b4b4(Tb4b4b4)Tb4b4b4) Tff7b72return Ta5d6ff"Ta5d6ff—Ta5d6ff"
Tff7b72val Te6edf3factor Tff7b72= T79c0ff1T79c0ff0.0Tb4b4b4.Te6edf3powTb4b4b4(Te6edf3decimalPlacesTb4b4b4)
Tff7b72val Te6edf3rounded Tff7b72= Tb4b4b4(Te6edf3value Tff7b72* Te6edf3factorTb4b4b4)Tb4b4b4.Te6edf3roundToLongTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3formatFixedPointTb4b4b4(Te6edf3roundedTb4b4b4, Te6edf3decimalPlacesTb4b4b4)
Tb4b4b4}
T8b949e/** Formats a float value with the specified number of decimal places. */
Tff7b72fun Td2a8ffformatTb4b4b4(Te6edf3valueTb4b4b4: Tffa657FloatTb4b4b4, Te6edf3decimalPlacesTb4b4b4: Tffa657IntTb4b4b4)Tb4b4b4: Tffa657String Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3valueTb4b4b4.Te6edf3isNaNTb4b4b4(Tb4b4b4) Tff7b72|Tff7b72| Te6edf3valueTb4b4b4.Te6edf3isInfiniteTb4b4b4(Tb4b4b4)Tb4b4b4) Tff7b72return Ta5d6ff"Ta5d6ff—Ta5d6ff"
Tff7b72return Te6edf3formatTb4b4b4(Te6edf3valueTb4b4b4.Te6edf3toDoubleTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3decimalPlacesTb4b4b4)
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffformatFixedPointTb4b4b4(Te6edf3scaledValueTb4b4b4: Tffa657LongTb4b4b4, Te6edf3decimalPlacesTb4b4b4: Tffa657IntTb4b4b4)Tb4b4b4: Tffa657String Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3decimalPlaces Tff7b72=Tff7b72= T79c0ff0Tb4b4b4) Tff7b72return Te6edf3scaledValueTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3isNegative Tff7b72= Te6edf3scaledValue Tff7b72< T79c0ff0
Tff7b72val Te6edf3abs Tff7b72= Tff7b72if Tb4b4b4(Te6edf3isNegativeTb4b4b4) Tff7b72-Te6edf3scaledValue Tff7b72else Te6edf3scaledValue
Tff7b72val Te6edf3factor Tff7b72= T79c0ff1T79c0ff0.0Tb4b4b4.Te6edf3powTb4b4b4(Te6edf3decimalPlacesTb4b4b4)Tb4b4b4.Te6edf3toLongTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3intPart Tff7b72= Te6edf3abs Tff7b72/ Te6edf3factor
Tff7b72val Te6edf3fracPart Tff7b72= Te6edf3abs Tff7b72% Te6edf3factor
Tff7b72val Te6edf3sign Tff7b72= Tff7b72if Tb4b4b4(Te6edf3isNegativeTb4b4b4) Ta5d6ff"Ta5d6ff-Ta5d6ff" Tff7b72else Ta5d6ff"Ta5d6ff"
Tff7b72return Ta5d6ff"Tffd700$Te6edf3signTffd700$Te6edf3intPartTa5d6ff.Tffd700${Te6edf3fracPartTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3padStartTb4b4b4(Te6edf3decimalPlacesTb4b4b4, Ta5d6ff'0'Tb4b4b4)Tffd700}Ta5d6ff"
Tb4b4b4}
Tb4b4b4}
Served by rngit 1.5.0 - Generated in 0.08s